package com.jincheng.system.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.jincheng.common.annotation.Excel;
import com.jincheng.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serial;
import java.math.BigDecimal;


/**
 * 部落对象 tb_tribe
 *
 * @author DairyJay
 * @date 2025-02-27
 */
@Setter
@Getter
@TableName("tb_tribe")
public class Tribe extends BaseEntity {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 部落id
     */
    @TableId(type = IdType.AUTO)
    private Long tribeId;

    /**
     * 部落名称
     */
    @Excel(name = "部落名称")
    private String tribeName;

    /**
     * 部落图片
     */
    @Excel(name = "部落图片")
    private String imageUrl;

    /**
     * 所属学院
     */
    @Excel(name = "所属学院")
    private Long deptId;

    /**
     * 所属组织
     */
    @Excel(name = "所属组织")
    private Long orgId;

    /**
     * 热度
     */
    @Excel(name = "热度")
    private BigDecimal heat;

    /**
     * 简介
     */
    @Excel(name = "简介")
    private String intro;

    /**
     * 部落成员数量
     */
    @Excel(name = "部落成员数量")
    private Long memberCount;

    /**
     * 主席
     */
    @Excel(name = "主席")
    private Long chairId;

    /**
     * 主席
     */
    @Excel(name = "主席姓名")
    @TableField(exist = false)
    private String chairName;

    /**
     * 主席
     */
    @Excel(name = "主席手机号")
    @TableField(exist = false)
    private String chairPhone;

    /**
     * 逻辑删除
     */
    private Integer delFlag;


    /**
     * 备注
     */
    @TableField(exist = false)
    private String remark;

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("tribeId", getTribeId())
                .append("tribeName", getTribeName())
                .append("imageUrl", getImageUrl())
                .append("deptId", getDeptId())
                .append("orgId", getOrgId())
                .append("heat", getHeat())
                .append("intro", getIntro())
                .append("memberCount", getMemberCount())
                .append("chairId", getChairId())
                .append("chairName", getChairName())
                .append("chairPhone", getChairPhone())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
